﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200027D RID: 637
	public class TArrayAccess : TParseTreeNode
	{
		// Token: 0x170003B2 RID: 946
		// (get) Token: 0x0600147A RID: 5242 RVA: 0x00324F0F File Offset: 0x0032310F
		// (set) Token: 0x0600147B RID: 5243 RVA: 0x00324F17 File Offset: 0x00323117
		public virtual TExpression Index3
		{
			get
			{
				return this._index3;
			}
			set
			{
				this._index3 = value;
			}
		}

		// Token: 0x170003B3 RID: 947
		// (get) Token: 0x0600147C RID: 5244 RVA: 0x00324F20 File Offset: 0x00323120
		// (set) Token: 0x0600147D RID: 5245 RVA: 0x00324F28 File Offset: 0x00323128
		public virtual TObjectName ArrayName
		{
			get
			{
				return this._arrayName;
			}
			set
			{
				this._arrayName = value;
			}
		}

		// Token: 0x170003B4 RID: 948
		// (get) Token: 0x0600147E RID: 5246 RVA: 0x00324F31 File Offset: 0x00323131
		// (set) Token: 0x0600147F RID: 5247 RVA: 0x00324F39 File Offset: 0x00323139
		public virtual TExpression Index1
		{
			get
			{
				return this._index1;
			}
			set
			{
				this._index1 = value;
			}
		}

		// Token: 0x170003B5 RID: 949
		// (get) Token: 0x06001480 RID: 5248 RVA: 0x00324F42 File Offset: 0x00323142
		// (set) Token: 0x06001481 RID: 5249 RVA: 0x00324F4A File Offset: 0x0032314A
		public virtual TExpression Index2
		{
			get
			{
				return this._index2;
			}
			set
			{
				this._index2 = value;
			}
		}

		// Token: 0x170003B6 RID: 950
		// (get) Token: 0x06001482 RID: 5250 RVA: 0x00324F53 File Offset: 0x00323153
		// (set) Token: 0x06001483 RID: 5251 RVA: 0x00324F5B File Offset: 0x0032315B
		public virtual TObjectName PropertyName
		{
			get
			{
				return this._propertyName;
			}
			set
			{
				this._propertyName = value;
			}
		}

		// Token: 0x06001484 RID: 5252 RVA: 0x00324F64 File Offset: 0x00323164
		public override void init(object arg1, object arg2, object arg3, object arg4)
		{
			this._arrayName = (TObjectName)arg1;
			if (arg2 is TExpressionList)
			{
				this._index1 = ((TExpressionList)arg2).getExpression(0);
			}
			else if (arg3 is TExpression)
			{
				this._index2 = (TExpression)arg3;
			}
			if (arg4 != null)
			{
				if (arg4 is TObjectName)
				{
					this._propertyName = (TObjectName)arg4;
					return;
				}
				if (arg4 is TExpression)
				{
					this._index3 = (TExpression)arg4;
				}
			}
		}

		// Token: 0x06001485 RID: 5253 RVA: 0x00324FE0 File Offset: 0x003231E0
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this._index1 != null)
			{
				this._index1.doParse(psql, plocation);
			}
			if (this._index2 != null)
			{
				this._index2.doParse(psql, plocation);
			}
			if (this._index3 != null)
			{
				this._index3.doParse(psql, plocation);
			}
		}

		// Token: 0x06001486 RID: 5254 RVA: 0x0032502C File Offset: 0x0032322C
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001487 RID: 5255 RVA: 0x0032503C File Offset: 0x0032323C
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x040016DF RID: 5855
		private TObjectName _arrayName;

		// Token: 0x040016E0 RID: 5856
		private TExpression _index1;

		// Token: 0x040016E1 RID: 5857
		private TExpression _index2;

		// Token: 0x040016E2 RID: 5858
		private TExpression _index3;

		// Token: 0x040016E3 RID: 5859
		private TObjectName _propertyName;
	}
}
